// 根据先序和中序还原二叉树
// ref:https://blog.csdn.net/SASAKI_130/article/details/106284885
#include <stdio.h>
#include <stdlib.h>
// 包括换行符
#define MAX_SIZE 51
int GetHeight(char *a, char *b, int len)
{
	int i, LH, RH;
	if (len == 0)
		return 0;
    // 找到根节点
	for (i = 0; i < len; i++)
		if(b[i]==a[0])
			break;

		// 递归处理 左右子树
		LH = GetHeight(a + 1, b, i);
		RH = GetHeight(a + 1 + i, b + 1 + i, len - i - 1);
		return (LH > RH ? LH : RH) + 1;
}
int main()
{
	int N;
	char arr1[MAX_SIZE], arr2[MAX_SIZE];
	scanf("%d", &N);
	scanf("%s %s", arr1, arr2);
	printf("%d", GetHeight(arr1, arr2, N));
	return 0;
}